package main.java.fases;

import java.util.*;

import main.java.juego.Turno;
import main.java.tipos.CartaAlemania;
import main.java.juego.*;

public class Blitzkrieg implements Fase{

	private Turno turnoActual;
	private List<CartaAlemania> combinacion;
	
	private Blitzkrieg (Turno turno){
		turnoActual = turno;
		combinacion=new ArrayList<CartaAlemania>();
	}
	
	public static Blitzkrieg create(Turno turno){
		return new Blitzkrieg(turno);
	}
	
	public boolean hayCombinacion(List<CartaAlemania> mano){
		boolean s,u,a,m,b;
		s=u=a=m=b=false;
		
		for(CartaAlemania c:mano){
			switch(c.dameTipoDeCartaAlemania()){
				case ESTRATEGIA: s=true;break;
				case UNIDADES: u=true;break;
				case FUERZA_AEREA: a=true;break;
				case MOVIMIENTO: m=true;break;
				case PIFIA_ALIADA: b=true;break;
			}
		}
		
		return s && u && a && m && b;
	}
	
	public boolean batallaganada(){
		return turnoActual.damefuerzaTotalAlemania() >= turnoActual.dameFuerzaTotalAliados();
	}
	
	public void setCombinacion(List<CartaAlemania> combinacion){
		this.combinacion=combinacion;
	}
	
	public List<CartaAlemania> getCartasAlemanas() {
		return turnoActual.dameCartasAlemanasEnJuego();
	}
	
	public Turno getTurnoActual(){
		return turnoActual;
	}

	public List<CartaAlemania> getCombinacion() {
		return combinacion;
	}
	
}
